import api from './index'
import { axios } from '@/utils/request'


/**
 * 查询博客详情信息
 * @param blogId 博客编号
 * @returns {*}
 */
export function loadBlogById(blogId) {
  return axios({
    url: `/blog/detail/${blogId}`,
    method: 'get'
  })
}


/**
 * 博客分页查询接口
 * @param current 当前页
 * @param size 页面大小
 * @param count 期望获取的博客记录条数
 * @returns {*} 返回博客分页数据
 */
export function blogRecommondQuery(current, size, count) {
  let extraParams = ''
  if (count) {
    extraParams += '&count=' + count
  }
  return axios({
    url: api.RecommendBlogPageQuery + '?size=' + size + '&current=' + current + extraParams,
    method: 'get'
  })
}

/**
 * 博客分页查询接口
 * @param current 当前页
 * @param size 页面大小
 * @param categoryId 类目编号
 * @param tagId 标签编号
 * @returns {*} 返回博客分页数据
 */
export function blogPageQuery(current, size, categoryId, tagId) {
  let extraParams = ''
  if (categoryId) {
    extraParams += '&categoryId=' + categoryId
  }
  if (tagId) {
    extraParams += '&tagId=' + tagId
  }
  return axios({
    url: api.BlogPageQuery + '?size=' + size + '&current=' + current + extraParams,
    method: 'get'
  })
}

/**
 * 博客分类信息查询
 * @returns {AxiosPromise}
 */
export function blogCategoryQuery() {
  return axios({
    url: api.BlogCategoryQuery,
    method: 'get'
  })
}



/**
 * 博客标签信息查询
 * @returns {AxiosPromise}
 */
export function blogTagQuery() {
  return axios({
    url: api.BlogTagQuery,
    method: 'get'
  })
}

/**
 * 获取用户的菜单权限
 * @returns {*}
 */
export function getUserMenues() {
  return axios({
    url: api.UserMenuQuery,
    method: 'get'
  })
}

/**
 * 获取所有的系统网站配置参数
 */
export function getAllSysParams() {
  return axios({
    url: api.SysParamQuery,
    method: 'get'
  })
}

/**
 * 博客点赞
 * @param blogId 博客编号
 */
export function blogAgreeAction(blogId) {
  return axios({
    url: `/blog/agree/${blogId}`,
    method: 'post'
  })
}

/**
 * 博客分页查询
 * @param parentId 父节点ID(可以是blogId|commentId)
 * @param type 评论或者回复类型
 * @param currentPageNo 当前页面
 * @param pageSize 分页大小
 * @returns {*}
 */
export function blogCommentReplyQuery(parentId, type, currentPageNo, pageSize = 5) {
  return axios({
    url: `/commentReply/query?queryType=${type}&current=${currentPageNo}&size=${pageSize}&parentId=${parentId}`,
    method: 'get'
  })
}

/**
 * 发表博客评论
 * @param passiveUserId 被评论的用户（一般指博主用户ID）
 * @param parentId 父节点ID（一般指博文ID）
 * @param content 发表内容信息
 * @returns {*}
 */
export function makeBlogComment({ passiveUserId, parentId, content }) {
  return axios({
    url: `/commentReply/comment/add`,
    method: 'post',
    data: { passiveUserId, parentId, content }
  })
}


/**
 * 发表博客评论回复
 * @param blogId 博客编号
 * @param parentId 回复的目标评论ID
 * @param passiveUserId 被评论的对象
 * @param content 评论内容信息
 * @returns {*}
 */
export function makeCommentReply({ blogId, parentId, passiveUserId, content }) {
  return axios({
    url: `/commentReply/reply/add`,
    method: 'post',
    data: { blogId, parentId, passiveUserId, content }
  })
}


/**
 * 发表博客评论回复
 * @param blogId 博客编号
 * @param parentId 回复的目标评论ID
 * @param passiveUserId 被评论的对象
 * @param content 评论内容信息
 * @returns {*}
 */
export function makeCommentReplyAgree(commentReplyId) {
  return axios({
    url: `/commentReply/agree/${commentReplyId}`,
    method: 'post'
  })
}

/**
 * 博客归档分页查询
 * @param queryType 查询类型：yyyy、yyyyQ、yyyyMM
 * @param current 页码
 * @returns {*}
 */
export function blogArchitectQuery(queryType = 'yyyy', current = 1) {
  return axios({
    url: `/blog/archive/query?pattern=${queryType}&size=18&current=${current}`,
    method: 'get'
  })
}


